package org.mspring.mlog.service;

import org.mspring.mlog.common.constants.DailyStatus;
import org.mspring.mlog.dao.DailyEntityDao;
import org.mspring.mlog.entity.DailyEntity;
import org.mspring.nbee.common.PageResult;
import org.mspring.nbee.db.dao.sql.builder.part.condition.SqlCondition;
import org.mspring.nbee.db.dao.sql.pager.SqlPager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Gao Youbo
 * @since 2016-04-10 21:15:03
 */
@Service
public class DailyEntityService {

    private static final Logger LOG = LoggerFactory.getLogger(DailyEntityService.class);

    private DailyEntityDao dailyEntityDao;

    public DailyEntity findById(long id) {
        return dailyEntityDao.findById(id);
    }

    public PageResult<DailyEntity> list(List<SqlCondition> conditions, SqlPager pager) {
        return dailyEntityDao.listPage(conditions, pager);
    }

    @Transactional
    public boolean insert(DailyEntity dailyEntity) {
        return dailyEntityDao.insert(dailyEntity);
    }

    @Transactional
    public boolean update(DailyEntity dailyEntity) {
        return dailyEntityDao.update(dailyEntity);
    }

    @Transactional
    public boolean deleteById(long id) {
        DailyEntity entity = dailyEntityDao.findById(id);
        if (entity == null) {
            return true;
        }
        entity.setStatus(DailyStatus.DELEtED);
        return dailyEntityDao.update(entity);
    }

    @Autowired
    public void setDailyEntityDao(DailyEntityDao dailyEntityDao) {
        this.dailyEntityDao = dailyEntityDao;
    }

}